package com.aspose.cells;

abstract class zs implements zahb {
   int a;

   protected abstract Object[] a();

   protected abstract void a(Object[] var1);

   protected abstract Object[] a(int var1);

   public int b() {
      return this.a;
   }

   public int a(int var1, int var2, int var3) {
      if (this.a < 1) {
         return -1;
      } else {
         if (var2 < 0) {
            var2 = 0;
         } else if (var2 >= this.a) {
            return -this.a - 1;
         }

         if (var3 < 0) {
            var3 = this.a - 1;
         }

         return zkd.a(this, var1, var2, var3);
      }
   }

   public void a(int var1, int var2) {
      if (var2 < 0) {
         ++var1;
         if (this.a > var1) {
            System.arraycopy(this.a(), var1, this.a(), var1 + var2, this.a - var1);
         }

         this.a += var2;
      } else {
         this.a -= var2;
         if (this.a > var1) {
            System.arraycopy(this.a(), var1 + var2, this.a(), var1, this.a - var1);
         }
      }

   }

   public int b(int var1, int var2) {
      if (var1 < 0) {
         var1 = 0;
      }

      if (var2 < 0) {
         var2 = this.a;
      } else {
         ++var2;
         if (this.a > var2) {
            System.arraycopy(this.a(), var2, this.a(), var1, this.a - var2);
         }
      }

      var2 -= var1;
      this.a -= var2;
      return var2;
   }

   public int c(int var1, int var2) {
      if (var1 < 0) {
         var1 = 0;
      }

      if (var2 < 0) {
         var2 = this.a;
      } else {
         ++var2;
      }

      return var2 - var1;
   }

   public void b(int var1) {
      this.a = 0;
      if (var1 > -1 && var1 < this.a().length) {
         this.a(this.a(var1));
      }

   }

   public boolean d(int var1, int var2) {
      Object[] var3 = this.a();
      if (var1 < -1) {
         var1 = (int)((float)var3.length / 100.0F * (float)(-var1 - 1));
      } else if (var1 < 0) {
         return false;
      }

      if (var3.length <= this.a + var1) {
         return false;
      } else if (var2 < 0) {
         return false;
      } else {
         var2 += this.a;
         if (var3.length <= var2) {
            return false;
         } else {
            Object[] var4 = this.a(var2);
            System.arraycopy(var3, 0, var4, 0, this.a);
            this.a(var4);
            return true;
         }
      }
   }

   public int a(int var1, Object var2) {
      if (var1 < 0) {
         var1 = this.a;
      }

      Object[] var3 = this.a();
      if (this.a == var3.length) {
         Object[] var4 = this.a(this.a > 0 ? this.a << 1 : 16);
         if (var1 > 0) {
            System.arraycopy(var3, 0, var4, 0, var1);
         }

         if (var1 < this.a) {
            System.arraycopy(var3, var1, var4, var1 + 1, this.a - var1);
         }

         this.a(var4);
         var3 = var4;
      } else if (var1 < this.a) {
         System.arraycopy(var3, var1, var3, var1 + 1, this.a - var1);
      }

      var3[var1] = var2;
      ++this.a;
      return var1;
   }

   public int a(int var1, Object[] var2, int var3, int var4) {
      if (var1 < 0) {
         var1 = this.a;
      }

      Object[] var5 = this.a();
      if (this.a + var4 > var5.length) {
         Object[] var6 = this.a(Math.max(this.a + var4, var5.length << 1));
         if (var1 > 0) {
            System.arraycopy(var5, 0, var6, 0, var1);
         }

         if (var1 < this.a) {
            System.arraycopy(var5, var1, var6, var1 + var4, this.a - var1);
         }

         this.a(var6);
         var5 = var6;
      } else if (var1 < this.a) {
         System.arraycopy(var5, var1, var5, var1 + var4, this.a - var1);
      }

      System.arraycopy(var2, var3, var5, var1, var4);
      this.a += var4;
      return var1;
   }
}
